Principles of mobile robotics are described in detail in Dudek, G., and M. Jenkin, Computational Principles of Mobile Robotics (Cambridge University Press, 2000) and Nehmzow, U., Mobile Robotics: A Practical Introduction (Springer Verlag, 2000). Practical mobile robot construction is described in detail in Wise, E., Applied Robotics (Prompt Publications, 1999) and McComb, G., The Robot Builder's Bonanza, 2nd Edition (McGraw Hill, 2001).
The present invention is not limited to use requiring a netpage. However, a netpage is now described to assist the reader in understanding the nature of the invention. A netpage consists of visible graphic data intended for human interpretation, as well as substantially invisible (or at least inconspicuous) netpage coded data intended for machine interpretation. The netpage coded data identifies, at each of at least a given density of points on the netpage, the identity of the netpage and the two-dimensional coordinates of the point. The given density is typically of the order of a few millimeters. A netpage sensing device incorporates an optical sensor and a decoder for netpage coded data. When placed in a position to sense netpage coded data, the netpage sensing device is able to determine the identity of the netpage and its own position relative to the netpage from a purely local snapshot of the netpage. Whereas the netpage coded data only directly encodes position to a certain precision (e.g. of the order of a few millimeters), the netpage sensing device can determine its position and orientation relative to the netpage to greater precision (e.g. of the order of a few micrometers) based on the alignment, rotation and perspective distortion of the coded data in its field of view.
Note that the distinction in a particular coding pattern between page identity (i.e. netpage id) and point coordinates is merely a functional distinction. An actual coding pattern may utilize any mixture (or hierarchy) of region identifiers and coordinates, ranging from a pure coordinate code where the coordinate space spans a multitude of pages, through to a pure identifier code where a page contains a multitude of identified regions. In the preferred coding, as described above, the coding pattern contains a multitude of identified regions, each containing a range of coordinates, and each conveniently corresponding to the size of a page. Note also that the size of a page is itself not fixed, and may correspond to the size of a sheet of paper (e.g. Letter/A4, Tabloid/A3, etc.), or to the size of the surface of an arbitrary object.
If the scale of the netpage coding pattern is increased (e.g. so that the given point density is of the order of centimeters or decimeters or larger), then the required imaging field of view grows accordingly. However, the precision with which the corresponding netpage sensing device can determine its precision and orientation relative to the netpage is a function of the device's imaging resolution, not the size of its field of view. It is therefore possible, given sufficient resolution, to determine position and orientation to arbitrary precision, independent of the scale of the netpage coding pattern, subject of course to normal optical imaging constraints such as diffraction limit.
A netpage may be printed onto a surface, such as the surface of a sheet of paper, using a netpage printer. Printing may take place in bulk, or on demand. The graphic data is typically printed using visible inks, such as cyan, magenta, yellow and black inks. The coded data is typically printed using an invisible ink such as an infrared-absorptive ink, or using a low-visibility ink.
More generally, the graphic data may be printed or otherwise deposited on or in the surface by any suitable device or process, and the coded data may be printed or otherwise deposited on or in the surface by any suitable process. The two devices and/or processes may be entirely unrelated, and need not operate simultaneously. It is within the scope of the present invention that the pattern of the coded data is represented in any way that allows it to be sensed, e.g. optically, magnetically, chemically, etc.
A netpage disposed on a surface is backed by a description of that netpage stored in a computer system, indexed by the netpage id. When a netpage sensing device interacts with a netpage, the sensing device forwards the details of the interaction to the computer system for interpretation with reference to the stored netpage description. The forwarded details typically include the decoded netpage id and the decoded position of the sensing device relative to the netpage. The details may also consist of a stream of netpage ids and positions. When the netpage sensing device is in the form of a writing implement or stylus, and the stream is therefore representative of motion of the writing implement or stylus relative to the netpage, the stream is referred to as digital ink. The netpage sensing device then typically incorporates a contact sensor, and is configured to begin generating the stream when it comes into contact with the surface, and cease generating the stream when contact with the surface is broken. Each digital ink stream delimited by a contact event and a loss of contact event is referred to as a stroke. The computer system retrieves the netpage description corresponding to the netpage id embedded in the stroke, and interprets the stroke with respect to the semantics of the netpage description. For example, if the netpage description describes a text field with a specific position and extent, the computer system may determine whether the stroke intersects the text field, and if so may interpret the stroke, in conjunction with other strokes similarly assigned to the text field, as handwritten text, and attempt to convert the strokes to a string of identified characters. If the netpage description describes an action zone (also referred to as a hyperlink) with a specific position and extent, the computer system may determine whether the stroke intersects the zone, and if so may interpret the stroke as invoking the action, which may in turn cause the computer system to send a corresponding message to another application associated with the action. Alternatively, a netpage stroke is forwarded directly to an application which is specific to the netpage id embedded in the stroke.
If the netpage sensing device incorporates a marking nib or printing device, then the computer system typically associates digital ink input from the device with the corresponding page by storing the digital ink in a persistent manner, indexed by the netpage id. In this way the digital ink can be reproduced when the page is re-printed, and can be searched.
A netpage sensing device in the form of a stylus and pen is described in co-pending PCT application WO 00/72230 entitled “Sensing Device, filed 24 May 2000; and co-pending U.S. application U.S. Ser. No. 09/721,893 entitled “Sensing Device”, filed 25 Nov. 2000. A netpage sensing device in the form of a viewer is described in co-pending PCT application WO 01/41046 entitled “Viewer with Code Sensor”, filed 27 Nov. 2000.
Various netpage coding schemes and patterns are described in co-pending PCT application WO 00/72249 entitled “Identity-Coded Surface with Reference Points”, filed 24 May 2000; co-pending PCT application WO 02/84473 entitled “Cyclic Position Codes”, filed 11 Oct. 2001; co-pending U.S. application U.S. Ser. No. 10/309,358 entitled “Rotationally Symmetric Tags”, (docket number NPT020US) filed 4 Dec. 2002; and Australian Provisional Application 2002952259 entitled “Methods and Apparatus (NPT019)”, filed 25 Oct. 2002.
The reference to any prior art in this specification is not, and should not be taken as, an acknowledgment or any form of suggestion that such prior art forms part of the common general knowledge.